package system

import (
	"gitee.com/g-qs/gin-vue-admin/server/global"
	"github.com/gofrs/uuid/v5"
)

type SysUser struct {
	global.GVA_MODEL
	UUID        uuid.UUID      `json:"uuid" gorm:"index;comment:用户UUID"`                                                              // 用户UUID
	Username    string         `json:"userName" gorm:"index;comment:用户登录名"`                                                           // 用户登录名
	Name        string         `json:"name" form:"name" gorm:"column:name;comment:名称;"`                                               // 名称
	Password    string         `json:"-" gorm:"comment:用户登录密码"`                                                                       // 用户登录密码
	NickName    string         `json:"nickName" form:"nickName" gorm:"default:系统用户;comment:用户昵称"`                                     // 用户昵称
	SideMode    string         `json:"sideMode" gorm:"default:dark;comment:用户侧边主题"`                                                   // 用户侧边主题
	HeaderImg   string         `json:"headerImg" gorm:"default:https://image.cushdylm.com/app/fudun-img/logo_login.png;comment:用户头像"` // 用户头像
	BaseColor   string         `json:"baseColor" gorm:"default:#fff;comment:基础颜色"`                                                    // 基础颜色
	ActiveColor string         `json:"activeColor" gorm:"default:#1890ff;comment:活跃颜色"`                                               // 活跃颜色
	AuthorityId uint           `json:"authorityId" gorm:"default:888;comment:用户角色ID"`                                                 // 用户角色ID
	Authority   SysAuthority   `json:"authority" gorm:"foreignKey:AuthorityId;references:AuthorityId;comment:用户角色"`                   // 用户角色
	Authorities []SysAuthority `json:"authorities" gorm:"many2many:sys_user_authority;"`                                              // 更多用户角色信息
	Phone       string         `json:"phone"  gorm:"comment:用户手机号"`                                                                   // 用户手机号
	Email       string         `json:"email"  gorm:"comment:用户邮箱"`                                                                    // 用户邮箱
	Enable      int            `json:"enable" gorm:"default:1;comment:用户是否被冻结 1正常 2冻结"`                                               //用户是否被冻结 1正常 2冻结
	Creator     uint           `json:"creator" form:"creator" gorm:"default:1;comment:创建者"`                                           // 创建者
	CreatorInfo *SysUser       `json:"creatorInfo" gorm:"foreignKey:Creator;references:ID;comment:创建者信息;"`                            // 创建者信息
	Province    string         `json:"province" form:"province" gorm:"column:province;comment:省;"`                                    // 省
	City        string         `json:"city" form:"city" gorm:"column:city;comment:市;"`                                                // 市
	Area        string         `json:"area" form:"area" gorm:"column:area;comment:区/县;"`                                              // 区/县
	Addr        string         `json:"addr" form:"addr" gorm:"column:addr;comment:详细地址;"`                                             // 详细地址
}

func (SysUser) TableName() string {
	return "sys_users"
}
